package com.econ.springboot.tdengine.demo.mybatis.dao;

import com.econ.springboot.tdengine.demo.mybatis.domain.TagData;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface TagMapper {

    void dropDB();

    void createDB();

    void createSuperTable();

    void createTable(@Param("tagName") String tagName,@Param("tagId") int tagId);

    List<TagData> selectByName(@Param("limit") Long limit, @Param("offset") Long offset
            ,@Param("tableName") String tableName);

    /**
     *
     * @param start 开始时间
     * @param end 结束时间
     * @param step 间隔
     * @param tableName 子表名称
     * @return
     */
    List<TagData> getHisDataByName(@Param("start") String start, @Param("end") String end
            , @Param("step") String step, @Param("tableName") String tableName);

    int createBatchTable(@Param("tagMap") Map<Long,String> tagMap);

    void deleteTable(@Param("tableName") String tableName);

    List<String> getAllTables();

    List<Long> getAllTagIds();

    void deleteSuperTable(@Param("tableName") String tableName);

    int insert(@Param("tableName") String tableName,@Param("tag") TagData tagData);

    long insertBatch(@Param("tableName") String tableName,@Param("tagDataList") List<TagData> tagDataList);

    int count();

    List<TagData> avg();

}
